let mysql = require('mysql');

// 将static目录下的文件定义为静态资源文件
let express = require("express");
let serves = require("express")();
let path = require('path');

/**
 *      server.use(express.static(__dirname + '/public'));：设置__dirname/public文件为静态文件这样其下的资源就可以被访问了
 *      注： “__dirname” 是 node.js 中的一个全局变量，它指向当前脚本所在的目录。 “__dirname” 变量值代表程序运行的根目录。
 */
//获取放置在public文件夹下的静态文件,
serves.use(express.static(__dirname));//相对地址
serves.use(express.static(__dirname + '/css'));
serves.use(express.static(__dirname + '/img'));
serves.use(express.static(__dirname + '/js'));//只会设置所属路径的一级目录



//获取数据库连接
let sql = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '123456',
    database: 'company'
});
//cls:清空命令行
// 尝试链接
sql.connect();
//跨域
serves.all("*", function (req, res, next) {
    //设置允许跨域的域名，*代表允许任意域名跨域
    res.header("Access-Control-Allow-Origin", "*");
    //允许的header类型
    res.header("Access-Control-Allow-Headers", "content-type");
    //跨域允许的请求方式
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200);  //让options尝试请求快速结束
    else
        next();
})

//查询案例---AJAX
serves.get("/SELECTCASE", function (request, response) {
    sql.query("SELECT * FROM `case`", function (error, data) {
        if (error) {
            console.log(error);
            return;
        } else {
            //console.log(data);
            response.end(JSON.stringify(data));
            return;
        }
    })
});

//查询方案--JSONP
serves.get("/SELECTJIEJUE", function (request, response) {
    let callback = request.query.callback;
    sql.query("SELECT * FROM `program`", function (error, data) {
        if (error) {
            console.log(error);
            return;
        } else {
            //console.log(typeof data)
            response.end(`${callback}(${JSON.stringify(data)})`);/*为什么需要进行将object转为json*/
            return;
        }
    })
});

//根据ID值查询方案详情--模板引擎
/**
 * 1.应用第三方模块ejs:
 *          let ejs = require("ejs");
 * 2. 使用ejs方法查询，查询页面并且返回数据，在查询出的页面中进行数据的显示，info用于存储查询出的数据
 * ejs.renderFile("details.html",{info:data[0]}, function(error,result){
		if(error){
			console.log(error)
			return;
		}
		response.end(result)
	});
 */
let ejs = require("ejs");

serves.get("/SELECTJIEJUEXQ", function (request, response) {
    let ID = request.query.id;
    sql.query(`select program.\`Pro-type\`,program.\`Pro-tit\`,program.\`Pro-date\`,\`solve-detial\`.* FROM program,\`solve-detial\` WHERE \`solve-detial\`.\`Pro-id\`=program.\`Pro-id\` AND \`solve-detial\`.\`Pro-id\`=${ID};`, function (error, data) {
        if (error) {
            console.log(error);
            return;
        } else {
            //console.log(data);
            ejs.renderFile("jiejuexiangqing.html", {info: data}, function (error, result) {
                if (error) {
                    console.log(error)
                    return;
                }
                response.end(result)
            });
        }
    })
})

serves.get("/SELECTCASEXQ", function (request, response) {
    let ID = request.query.id;
    sql.query(`SELECT \`case\`.\`Case-title\`,\`case\`.\`Case-name\`,\`case-detial\`.* FROM \`case\` ,\`case-detial\` WHERE \`case\`.\`Case-id\`=\`case-detial\`.\`Case-id\` AND \`case-detial\`.\`Case-id\`=${ID};`, function (error1, data) {
        if (error1) {
            console.log(error1);
            return;
        } else {
            sql.query(`SELECT COUNT(\`case-detial\`.\`Case-f-tit\`) sum FROM \`case-detial\`  WHERE \`case-detial\`.\`Case-id\`=${ID}  GROUP BY \`case-detial\`.\`Case-f-tit\`;`,function (error2,counts) {
                if (error2){
                    console.log(error2);
                    return;
                }else{
                    ejs.renderFile("anlixiangqing.html",{info:data,counts:counts},function (error3,result) {
                        if (error3){
                            console.log(error3);
                            return;
                        }else{
                            console.log(data);
                            console.log(counts);
                            response.end(result);
                        }
                    });
                }
            })
        }
    });
});

//根据ID值查询方案详情--模板引擎

serves.listen(81);